Bienvenue à la leçon 7, où nous introduisons le transfert d'apprentissage. Cette technique consiste à réutiliser un modèle d'apprentissage profond déjà entraîné sur un grand jeu de données général (comme ImageNet) et à l'adapter pour résoudre une nouvelle tâche spécifique (comme notre défi FoodVision). Elle est essentielle pour atteindre des résultats de pointe de manière efficace, surtout lorsque les jeux de données étiquetés sont limités.
1. La puissance des poids pré-entraînés
Les réseaux neuronaux profonds apprennent les caractéristiques de manière hiérarchique. Les couches inférieures apprennent des concepts fondamentaux (bords, coins, textures), tandis que les couches plus profondes combinent ces éléments en concepts complexes (yeux, roues, objets spécifiques). La clé de l'insight est que les caractéristiques fondamentales apprises au début sont universellement applicables dans la plupart des domaines visuels.
Composants du transfert d'apprentissage
- Tâche source : Entraînement sur 14 millions d'images et 1000 catégories (par exemple, ImageNet).
- Tâche cible : Adaptation des poids pour classer un jeu de données bien plus petit (par exemple, nos catégories spécifiques FoodVision).
- Composant exploité : La grande majorité des paramètres du réseau — les couches d'extraction de caractéristiques — sont réutilisées directement.
Exécutez le code pour inspecter les tenseurs actifs
La taille des caractéristiques d'entrée doit correspondre à la sortie de la couche de base gelée.
Taille : 512.
La taille de sortie de 512 est l'entrée, et le nombre de classes 7 est la sortie.
Code :
new_layer = torch.nn.Linear(512, 7)La taille des caractéristiques de sortie doit correspondre au nombre de classes cibles.
Taille : 7.